//
//	 MyHarris.h
//


#ifndef __H_MYHARRIS_H__
#define __H_MYHARRIS_H__


#define GAUSSKERN  3.5
#define PI	 3.1415926
#define EPS  0.0000001

class CMyHarris
{
public:
	CMyHarris(double sigma , double threshold , int localdimx , int localdimy , double k);
	~CMyHarris();
	int DetectHarrisCorner(double * pImg , int * corner , int W , int H);
//	void MatchHarrisCorner(double * pImg1 , double * pImg2 , double * corner1 , double * corner2 , int dim ,
//							int W , int H , int counts1 , int counts2 , double * corner , int * counts); 
private:
	int InitMyParameter(double * pImg , int Width , int Height);
	int GaussianKernel2D(double sigma , double * gaussfilter , int dim);
	int Gradient_X_Y(double * I , double * Ix , double * Iy , int W , int H);
public:
	int m_counts;
private:
	double m_k;
	double * m_img;
	double m_sigma , m_threshold;
	double * m_cornerness;
	double * m_Ix , * m_Iy ;
	double * m_gaussfilter;
	int m_dim ,m_localdimx , m_localdimy;
	int m_Width , m_Height;

};

#endif